package com.wuliu.system.service.applet;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wuliu.common.core.domain.PageResult;
import com.wuliu.system.domain.BasEmployee;
import com.wuliu.system.domain.TspDrivingRecord;
import com.wuliu.system.domain.dto.applet.OpDrivingRecordDto;
import com.wuliu.system.domain.dto.applet.QryDrivingRecordDto;
import com.wuliu.system.domain.dto.applet.TspDrivingRecordDto;
import com.wuliu.system.domain.vo.applet.ExportDrivingRecordVo;
import com.wuliu.system.domain.vo.applet.TspDrivingRecordCountVo;
import com.wuliu.system.domain.vo.applet.TspDrivingRecordVo;

import java.util.List;

/**
 * @author realue
 * @version 1.0
 * @date 2023-11-04 16:11
 */
public interface AppletTspDrivingRecordService extends IService<TspDrivingRecord> {
    /**
     * 查询行车记录
     *
     * @param id 行车记录主键
     * @return 行车记录
     */
    public TspDrivingRecordVo selectTspDrivingRecordById(String id);

    /**
     * 查询行车记录列表
     *
     * @param dto 行车记录
     * @return 行车记录集合
     */
    public PageResult<TspDrivingRecordVo> selectTspDrivingRecordList(QryDrivingRecordDto dto);

    /**
     * 新增行车记录
     *
     * @param dto 行车记录
     * @return 结果
     */
    public int insertTspDrivingRecord(TspDrivingRecordDto dto);

    /**
     * 修改行车记录
     *
     * @param dto 行车记录
     * @return 结果
     */
    public int updateTspDrivingRecord(TspDrivingRecordDto dto);

    /**
     * 批量删除行车记录
     *
     * @param ids 需要删除的行车记录主键集合
     * @return 结果
     */
    public int deleteTspDrivingRecordByIds(String[] ids);

    /**
     * 删除行车记录信息
     *
     * @param id 行车记录主键
     * @return 结果
     */
    public int deleteTspDrivingRecordById(String id);

    /**
     * 导出行车记录表
     *
     * @param dto
     * @return
     */
    List<ExportDrivingRecordVo> exportTspDrivingRecordList(QryDrivingRecordDto dto);

    /**
     * 上传行车记录图片
     *
     * @param images
     * @param id
     * @param type
     * @return
     */
    Boolean addImages(String[] images, String id, Integer type);

    /**
     * 查询行车记录图片
     *
     * @param id
     * @param type
     * @return
     */
    List<String> getImages(String id, Integer type);

    /**
     * 获取车次号
     *
     * @param drivingDate
     * @return
     */
    String getTrainNum(String drivingDate);

    /**
     * 统计
     *
     * @param beginDt
     * @param endDt
     * @param type
     * @return
     */
    List<TspDrivingRecordCountVo> count(String beginDt, String endDt, Integer type);

    /**
     * 操作行车记录
     * @param dto
     * @return
     */
    Boolean opRecord(OpDrivingRecordDto dto);
}
